package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

    // 消息通知 可以将消息写入某个表  前端每隔10秒进行轮询，被请求之后删除对应的消息通知数据。每次最多返回3条通知信息。

    // 数据源管理

    // 表管理  拉取表结构功能（同步拉取，异步拉取（结束后通知，前端提示表字段已更新结束）），拉取maxcompute时选择SDK和JDBC方式拉取。根据当前数据库类型，获取对应的配置即可。maxCompute: [sdk, jdbc]。oracle:[jdbc], mysql:[jdbc], hive:[jdbc]

    // 字段管理

    // 字段映射管理（存在问题的字段可以通过字段映射）  我们将一些存在关键字的字段映射为一个新的字段，从而避免解析出现异常

    // 执行SQL（数据源管理增加这样一个方法）

    // 脚本管理 我们可以自己管理脚本  然后随时修改脚本的内容 因为脚本是可以存在问题的

    // 增加脚本一键校验功能，只有通过校验的脚本（校验语法和DDL脚本是否都存在）  构建解析任务时才会进行真正的解析  然后进入图库

    // 已经校验通过后的脚本不再重复校验

    // 增加一键重验功能，将会去批量校验所有的脚本。如果正在做其他方式的校验，则等待其他校验完成

    // 修改脚本 需要存储版本号，存储版本回滚方法，将当前脚本历史内容存储在Redis的List里面，版本号几是当前的索引（只保留最近十个版本的索引）

    // 脚本修改之后需要连接管理人员，将存储过程重新放入数据库（这个过程需要谨慎，不做同步处理）

    // 任务配置管理 选脚本时，从脚本管理选择（根据来源，数据源过滤），一次可以选择无数脚本。

    // 解析任务实例 具体解析哪些脚本。

    // 解析一个批次下面有n个脚本。 将批次号和脚本ID发送到MQ。 消费者每消费一个脚本，发送一个更新数据库进度的MQ（需要带上解析关联的表的数量，解析成功和失败等信息， 解析报错数据入库。解析成功则构建图）。消费者消费之后，立马更新进度条。

    // 异步更新了进度条，当脚本进度条达到100%之后，选择通过站内消息发送给前端，供前端提示。

}
